﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using XYZshell.Game.CardGameEngine.Common;
using XYZshell.Game.CardGameEngine.CardFramework;
namespace XYZshell.Game.CardGameEngine.RuleFramework
{
	public abstract class Condition
	{
		public abstract  bool CalculateConditon();
	}


	///// <summary>
	///// 条件类
	///// </summary>
	//public  class Condition
	//{
	//    ///// <summary>
	//    ///// 需要满足条件的对象
	//    ///// </summary>
	//    //public object ConditionSource
	//    //{
	//    //    get;
	//    //    set;
	//    //}
	//    /// <summary>
	//    /// 哪个玩家需要满足这些条件
	//    /// </summary>
	//    public Player Plyer
	//    {
	//        get;
	//        set;
	//    }
	//    /// <summary>
	//    /// 条件的优先级
	//    /// </summary>
	//    public int Priority
	//    {
	//        get;
	//        set;
	//    }
	//    /// <summary>
	//    /// 手牌数目必须等于
	//    /// </summary>
	//    public int HandEqual
	//    {
	//        get;
	//        set;
	//    }
	//    /// <summary>
	//    /// 手牌数目必须大于
	//    /// </summary>
	//    public int HandGreaterThan
	//    {
	//        get;
	//        set;
	//    }
	//    /// <summary>
	//    /// 手牌数目必须小于
	//    /// </summary>
	//    public int HandLessThan
	//    {
	//        get;
	//        set;
	//    }
	//    /// <summary>
	//    /// 牌组中必须包含
	//    /// </summary>
	//    public List<Card> CardSetContain
	//    {
	//        get;
	//        set;
	//    }
	//    /// <summary>
	//    /// 牌组中不能包含
	//    /// </summary>
	//    public List<Card> CardSetNotContain
	//    {
	//        get;
	//        set;
	//    }
	//    /// <summary>
	//    /// 场地包含
	//    /// </summary>
	//    public List<Card> DesktopContain
	//    {
	//        get;
	//        set;
	//    }
	//    /// <summary>
	//    /// 场地上不包含
	//    /// </summary>
	//    public List<Card> DesktopNotContain
	//    {
	//        get;
	//        set;
	//    }
	//    /// <summary>
	//    /// 场地上的卡牌数目等于
	//    /// </summary>
	//    public int DesktopEqual
	//    {
	//        get;
	//        set;
	//    }
	//    /// <summary>
	//    /// 场地上的卡牌数目大于
	//    /// </summary>
	//    public int DesktopGreaterThan
	//    {
	//        get;
	//        set;
	//    }
	//    /// <summary>
	//    /// 场地上的卡牌数目小于
	//    /// </summary>
	//    public int DesktopLessThan
	//    {
	//        get;
	//        set;
	//    }
	//    /// <summary>
	//    /// 要求的条件
	//    /// </summary>
	//    /// <typeparam name="T">条件类型</typeparam>
	//    /// <param name="conditon">表达式</param>
	//    public static  void Required<T>(bool conditon) 
	//        where T:Condition
	//    {
	//    }
	//}
}
